Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Functions.hpp

Go to the documentation of this file.
00001 ///////////////////////////////////////////////////////////////////////////////
00002 /// @file Functions.hpp
00003 ///
00004 /// @brief Destiny3D assembly functions for Memory Manager
00005 ///
00006 /// @author Lightning
00007 ///
00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
00009 /// contents of this file is subject to the Destiny3D Member License which
00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
00011 ///
00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
00014 /// for any particular purpose.
00015 ///
00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
00017 ///
00018 /// <hr>
00019 ///                                 Change History
00020 /// <hr>
00021 ///
00022 /// @date Oct 2002
00023 /// @author Lightning
00024 /// @remarks Creation
00025 ///
00026 ///////////////////////////////////////////////////////////////////////////////
00027 
00028 #ifndef DEMEMORY_FUNCTIONS_HPP
00029 #define DEMEMORY_FUNCTIONS_HPP
00030 
00031 #include "deGlobalTypes.hpp"
00032 
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 
00037 //define the paramaters to the functions
00038 typedef void * (*Internal_memccpyFN)(void *Ptr1, const void *Ptr2, const int C, long Len);
00039 typedef void * (*Internal_memchrFN)(const void *Ptr1, const int C, long Len);
00040 typedef long (*Internal_memcmpFN)(const void *Ptr1, const void *Ptr2, long Len);
00041 typedef void * (*Internal_memcpyFN)(void *Ptr1, const void *Ptr2, long Len);
00042 typedef void * (*Internal_memsetFN)(void *Ptr1, int C, long Len);
00043 typedef long (*Internal_strcmpFN)(const char *Str1, const char *Str2);
00044 typedef long (*Internal_strlenFN)(const char *Str);
00045 
00046 //define the internal lookup structure used for the functions
00047 typedef struct geMem_InternalFunctions
00048 {
00049     Internal_memccpyFN  MemCCpy;
00050     Internal_memchrFN   MemChr;
00051     Internal_memcmpFN   MemCmp;
00052     Internal_memcpyFN   MemCpy;
00053     Internal_memsetFN   MemSet;
00054     Internal_strcmpFN   StrCmp;
00055     Internal_strlenFN   StrLen;
00056 } geMem_InternalFunctions;
00057 
00058 //init and release functions for the internal functions
00059 deBoolean InitializeInternalFunctions();
00060 void ReleaseInternalFunctions();
00061 
00062 //a "global" pointer of what internal functions to use
00063 extern geMem_InternalFunctions *InternalFunctions;
00064 
00065 
00066 //all the asm function defines that get used
00067 
00068 //regular asm versions
00069 void * Internal_ASM_memccpy(void *Ptr1, const void *Ptr2, const int C, long Len);
00070 void * Internal_ASM_memchr(const void *Ptr1, const int C, long Len);
00071 long Internal_ASM_memcmp(const void *Ptr1, const void *Ptr2, long Len);
00072 void * Internal_ASM_memcpy(void *Ptr1, const void *Ptr2, long Len);
00073 void * Internal_ASM_memset(void *Ptr1, int C, long Len);
00074 long Internal_ASM_strcmp(const char *Str1, const char *Str2);
00075 long Internal_ASM_strlen(const char *Str);
00076 
00077 //asm and mmx functions
00078 void * Internal_ASM_MMX_memcpy(void *Ptr1, const void *Ptr2, long Len);
00079 void * Internal_ASM_MMX_memset(void *Ptr1, int C, long Len);
00080 
00081 //mmx with 3dnow! (AMD) verions
00082 void * Internal_ASM_AMD_MMX_memcpy(void *Ptr1, const void *Ptr2, long Len);
00083 
00084 #ifdef __cplusplus
00085 }
00086 #endif
00087 
00088 #endif

Generated on Mon Sep 12 19:58:42 2005 for Destiny3D by doxygen1.3-rc3